package org.springmvc.pagination;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

/**
 * 分页工具
 * 
 * @author 唐家林
 * @time 2014年9月19日
 */
public class PageUtill {

	/**
	 * 封装分页数据
	 * 
	 * @return 返回分页封装后的数据
	 */
	public static <E> Page<E> newPageInstance() {
		return new Page<E>();
	}

	/**
	 * 获取对应表格分页响应数据
	 * @param page 分页数据
	 * @return 分页响应数据
	 */
	public static <E> Map<String, Object> getPageResponse(Page<?> page, HttpServletRequest request) {
//		String style = (String) request.getSession().getAttribute(SessionManagerUtil.getContextStyleKey());
//		if (style == null || style.isEmpty())
//			style = (String) request.getServletContext().getAttribute(SessionManagerUtil.getContextStyleKey());
//		if ("easyui".equals(style)) {
			return getEasyUIPageResponse(page);
//		} else if ("bootstrap".equals(style)) {
//			return getDataTablesPageResponse(page);
//		}
//		return new HashMap<String, Object>(0);
	};

	/**
	 * 获取EasyUI表格分页响应数据
	 * @param page 分页数据
	 * @return 分页响应数据
	 */
	public static <E> Map<String, Object> getEasyUIPageResponse(Page<E> page) {
		Map<String, Object> pageWrapper = new HashMap<String, Object>();
		pageWrapper.put("rows", page.getRecords());
		pageWrapper.put("total", page.getTotal());
		return pageWrapper;
	};

	/**
	 * 获取DataTables表格的分页响应数据
	 * @param page 分页数据
	 * @return 分页响应数据
	 */
	public static <E> Map<String, Object> getDataTablesPageResponse(Page<E> page) {
		Map<String, Object> pageWrapper = new HashMap<String, Object>();
		pageWrapper.put("draw", page.getPage());
		pageWrapper.put("recordsTotal", page.getTotal());
		pageWrapper.put("recordsFiltered", page.getTotal());
		pageWrapper.put("data", page.getRecords());
		return pageWrapper;
	};
}
